home *** CD-ROM | disk | FTP | other *** search
/ Personal Computer World 2009 February / PCWFEB09.iso / Software / Linux / SLAX 6.0.8 / slax-6.0.8.iso / boot / pxelinux.cfg / start < prev   
Text File  |  2008-11-21  |  970b  |  29 lines

  1. #!/bin/bash
  2. # This script will start a DHCP server and TFTP server in order to provide
  3. # fully functional environment for PXE booting.
  4. #
  5.  
  6. cd $(dirname $(readlink -f $0))
  7.  
  8. # find out our own IP address. If more interfaces are available, use the first one
  9. IP=$(ifconfig "$(ls -1 /sys/class/net | grep eth | head -n 1)" | grep "inet addr" | cut -d : -f 2 | cut -d " " -f 1)
  10.  
  11. # if no IP is assigned to this computer, setup private address randomly
  12. if [ "$IP" = "" ]; then
  13.    killall dhcpcd 2>/dev/null
  14.    IP="10."$(($RANDOM/130+1))"."$(($RANDOM/130+1))".1"
  15.    ifconfig $(ls -1 /sys/class/net | head -n 1) $IP netmask 255.0.0.0
  16. fi
  17.  
  18. # calculate C class range
  19. RANGE=$(echo $IP | cut -d "." -f 1-3)
  20.  
  21. # make sure dnsmasq can be started
  22. killall dnsmasq 2>/dev/null
  23. mkdir -p /var/state/dnsmasq
  24.  
  25. # start the DHCP server and TFTP server
  26. ./dnsmasq --enable-tftp --tftp-root=/boot \
  27. --dhcp-boot=/pxelinux.cfg/pxelinux.0,"$IP",$IP \
  28. --dhcp-range=$RANGE.2,$RANGE.250,infinite --log-dhcp
  29.